//获取应用实例
const app = getApp();
import { $wuxDialog } from 'weapp/index'
Page({
    data: {
        now_page: 0,
        list_total: 0,
        template_list: [],
        keywords: '',
        limit: 20,
        nav_list: [],
        nav_list2:{},
        status_color:{
          0:'orange',
          1:'orange',
          2:'#5e9eb0',
          3:'red',
          99:'#ccc'
        },
        active_nav_index: 0,
        goods_price_search:[],
        tab_value: null,
        // 筛选
        year: [],
        yearArray: [],
        is_show_shade: 0,
        cate_show_data: [],
        cate_all_data: [],
        sel_index_arr: [0, 0, 0],
        choose_index_arr: [],
        choose_id_arr: [],
        choose_cate_name: [],
        data_type_list: [
            {id: 1, name: '全部', value: 0},
            {id: 2, name: '正品', value: 1},
            {id: 3, name: '白批', value: 2},
        ],
        data_type_name: '',
        data_type_value: 0,
        // 切换
        search_or_filter: 1,
        priceUpdate:{
          goodsPrice:'货品资料价格',
          supplyPrice:'货品供应商价格',
        }
    },
    onLoad: function (options) {
        // 设置标题
        wx.setNavigationBarTitle({
            title: '货品价格修改审批单'
        });
        // 生成年份
        this.generateYearArray();
        // 设置参数
        if (options.template_no != undefined) {
            this.setData({
                keywords: options.template_no != undefined ? options.template_no : '',
            })
        }
        if (options.status != undefined) {
          this.setData({
            active_nav_index: options.status,
          })
        }
        if (options.id != undefined) {
          this.setData({
            goods_price_search: [{
              field:'goods_price_log.id'
            }],
          })
        }

        
        if (options.tab_value != undefined) {
            this.setData({
                tab_value: options.tab_value != undefined ? options.tab_value : 'all'
            })
        }
        // 获取tab列表
        this.get_tab_list();
        // 获取分类
        this.get_cate_list();
    },

    // 每次显示时
    onShow() {
        var __this = this;
        if (!app.check_is_login(false, true)) {
            // 显示登录
            wx.showModal({
                title: '提示',
                content: '请登录后再操作',
                showCancel: false,
                complete() {
                    // 获取tab列表
                    __this.get_tab_list();
                }
            });
        }
    },
    template_purchase: (e) => {
        let {template_id} = e.currentTarget.dataset;
        wx.navigateTo({
            url: '/pages/material/index?template_id=' + template_id,
        })
    },
    // 页面触底时执行
    onReachBottom: function () {
        this.get_template_list();
    },

    // 监听下拉[刷新]
    onPullDownRefresh: function () {
        this.setData({
            template_list: [],
            list_total: 0,
            now_page: 0,
        });
        // 获取列表
        this.get_template_list();
        // 停止下拉
        setTimeout(() => {
            wx.stopPullDownRefresh();
        }, 1000)
    },

    // 获取tab列表
    get_tab_list: function () {
        // 发起请求
        var result = app.request_api('admin/GoodsPriceLog/getTabsIndex', {}, true, 'GET');
        result.then(res => {
            console.log(res);
            let res2 = [];
            res.forEach((v,k)=>{
              res2[v.value] = v.label;
            })
            this.setData({
                nav_list: res,
                nav_list2: res2
            });
            // 自动跳转到对应tab
            if (this.data.tab_value != null) {
                var s_index = this.data.nav_list.findIndex(obj => obj.value == this.data.tab_value);
                if (s_index > -1) {
                    this.setData({
                        active_nav_index: s_index
                    })
                }
            }
            // 获取样板列表
            this.get_template_list();
        });
    },

    // 切换展示搜索或者筛选
    search_filter_change: function (events) {
        // this.setData({
        //     search_or_filter: this.data.search_or_filter == 1 ? 2 : 1
        // })
    },

    // 点击菜单
    change_nav: function (events) {
        var index = events.currentTarget.dataset.index;
        this.setData({
            active_nav_index: index,
            template_list: [],
            list_total: 0,
            now_page: 0,
        });
        // 重新获取数据
        this.get_template_list();
    },

    // 获取样板列表
    get_template_list: function (is_search = 0) {
        var __this = this;
        // 验证
        if ((this.data.template_list.length >= this.data.list_total) && this.data.now_page > 0) {
            return false;
        }
        // 组装条件
        let req_data = {
            page: this.data.now_page + 1,
            quick_search: __this.data.keywords,
            limit: __this.data.limit,
            "status": __this.data.nav_list[__this.data.active_nav_index].value,
            search:__this.data.goods_price_search
        };
        // 发起请求
        var result = app.request_api('admin/GoodsPriceLog/index', req_data, true, 'GET');
        result.then(res => {
            if (is_search == 1) {
                this.setData({
                    template_list: [],
                    list_total: 0,
                    now_page: 0,
                })
            }
            if (res.list.length > 0) {
            }
            res.list.forEach((v, k) => {
               
                v.is_show_plan = true;
              
            })
            this.setData({
                template_list: this.data.template_list.concat(res.list),
                list_total: res.total,
                now_page: this.data.now_page + 1
            });
        });
    },

    // 搜索
    GoSearch: function (events) {
        var keywords = events.detail.value.trim();
        this.setData({
            keywords: keywords,
            template_list: [],
            now_page: 0,
            list_total: 0,
        });
        this.get_template_list(1);
    },

    // 创建样板
    template_add: function (events) {
        var __this = this;
        // 跳转到创建样板页面
        wx.navigateTo({
            url: '/pages/template_add/template_add?template_id=0',
            events: {
                // 当添加完成时重新请求数据
                changeData: function (data) {
                    __this.setData({
                        keywords: '',
                        template_list: [],
                        now_page: 0,
                        list_total: 0,
                    });
                    __this.get_template_list();
                }
            }
        });
    },

    // 编辑样板
    template_update: function (events) {
        var index = events.currentTarget.dataset.index;
        var __this = this;
        // 跳转
        wx.navigateTo({
            url: '/pages/template_add/template_add?template_id=' + __this.data.template_list[index].template_id,
            events: {
                // 当修改完成时
                changeData: function (data) {

                }
            }
        });
    },

    // 跳转到详情页面
    template_detail: function (events) {
        var index = events.currentTarget.dataset.index;
        var __this = this;
        // 跳转
        wx.navigateTo({
            url: '/pages/template_detail/template_detail?template_id=' + __this.data.template_list[index].template_id,
            events: {
                // 当点击生产按钮时
                changeProductData: function (data) {
                    __this.data.template_list[index].status.value = 3;
                    __this.setData({
                        template_list: __this.data.template_list
                    })
                },
                // 当点击关闭生产按钮时
                changeCloseData: function (data) {
                    __this.data.template_list[index].status.value = 99;
                    __this.setData({
                        template_list: __this.data.template_list
                    })
                }
            }
        });
    },

    // 关闭生产
    template_close: function (events) {
        var index = events.currentTarget.dataset.index;
        var __this = this;
        // 确认提示
        wx.showModal({
            title: '提示',
            content: '您确定要关闭生产吗',
            success(res) {
                if (res.confirm) {
                    __this.template_close_request(index);
                }
            },
        });
    },

    // 关闭生产请求
    template_close_request: function (index) {
        var __this = this;
        var template_id = __this.data.template_list[index].template_id;
        var result = app.request_api('admin/template/closeTemplate', {
            id: template_id
        }, true);
        result.then(res => {
            wx.showToast({
                title: '已关闭生产',
                icon: 'none',
                duration: 2000,
            });
            // 将此数据从列表删除
            __this.data.template_list.splice(index, 1);
            __this.setData({
                template_list: __this.data.template_list
            });
        });
    },

    // 删除
    template_delete: function (events) {
        var index = events.currentTarget.dataset.index;
        var __this = this;
        // 确认提示
        wx.showModal({
            title: '提示',
            content: '您确定要删除此样板吗',
            success(res) {
                if (res.confirm) {
                    __this.template_delete_request(index);
                }
            },
        });
    },

    // 删除
    approval: function (events) {
      var index = events.currentTarget.dataset.index;
      var status = events.currentTarget.dataset.status;
      var __this = this;
      // 确认提示
      wx.showModal({
          title: '提示',
          content: '您确定更改为【'+__this.data.nav_list2[status]+'】',
          success(res) {
              if (res.confirm) {

                // if(status==3){
                  $wuxDialog('#wux-dialog').prompt({
                    resetOnClose: true,
                    title: '提示',
                    content: '',
                    fieldtype: 'string',
                    // password: !0,
                    defaultText: '',
                    placeholder: '请输入处理意见',
                    maxlength: 12,
                    onConfirm(e, response) {
                      __this.approval_request(index,status,response);
                    },
                  })
                // }else{
                //   __this.approval_request(index,status);
                // }
                  
              }
          },
      });
  },

// 删除样板请求
approval_request: function (index,status,text=null) {
  var __this = this;
  var approval_id = __this.data.template_list[index].id;

  var result = app.request_api('admin/GoodsPriceLog/approval', {
    id:approval_id,
    status,
    cancel_text:text,
  }, true);
  result.then(res => {
      wx.showToast({
          title: '操作成功',
          icon: 'none',
          duration: 2000,
      }).then(()=>{
        this.setData({
          template_list: [],
          now_page: 0,
          list_total: 0,
      });
        this.get_template_list()
      });
    
  });
},

    // 删除样板请求
    template_delete_request: function (index) {
        var __this = this;
        var template_id = __this.data.template_list[index].template_id;
        var result = app.request_api('admin/template/del', {
            ids: [template_id]
        }, true);
        result.then(res => {
            wx.showToast({
                title: '删除成功',
                icon: 'none',
                duration: 2000,
            });
            // 将此数据从列表删除
            __this.data.template_list.splice(index, 1);
            __this.setData({
                template_list: __this.data.template_list
            });
        });
    },

    // 确认生产
    template_product: function (events) {
        var index = events.currentTarget.dataset.index;
        var __this = this;
        // 确认提示
        wx.showModal({
            title: '提示',
            content: '您确定要开始生产吗',
            success(res) {
                if (res.confirm) {
                    __this.template_product_request(index);
                }
            },
        });
    },

    // 确认生产请求
    template_product_request: function (index) {
        var __this = this;
        var template_id = __this.data.template_list[index].template_id;
        var result = app.request_api('admin/template/postConfirmProduct', {
            template_id: template_id
        }, true);
        result.then(res => {
            wx.showToast({
                title: '已开始生产',
                icon: 'none',
                duration: 2000,
            });
            // 修改状态
            __this.data.template_list[index].status.value = 3;
            __this.setData({
                template_list: __this.data.template_list
            });
        });
    },

    // 预览图片
    PreviewImg: function (events) {
        var pic_arr = events.currentTarget.dataset.pic;
        // 调用
        wx.previewImage({
            current: pic_arr[0], // 当前显示图片的http链接
            urls: pic_arr // 需要预览的图片http链接列表
        })
    },

    // 生成年份
    generateYearArray: function () {
        var currentYear = new Date().getFullYear();
        var pastYears = 7;
        var futureYears = 3;
        var yearArray = [];
        // 生成过去7年的年份
        for (var i = currentYear - pastYears; i <= currentYear; i++) {
            yearArray.push(i);
        }
        // 生成未来3年的年份
        for (var j = currentYear + 1; j <= currentYear + futureYears; j++) {
            yearArray.push(j);
        }
        var currentIndex = pastYears;
        // 更新数据
        this.setData({
            yearArray: yearArray,
            currentIndex: currentIndex
        });
    },

    // 年份改变时
    yearChange: function (event) {
        var selectedYear = this.data.yearArray[event.detail.value];
        // 验证是否在数组中
        if (this.data.year.findIndex(obj => obj === selectedYear) > -1) {
            wx.showToast({
                title: '已选择过此年份',
                icon: 'none',
                duration: 1500,
            });
            return false;
        }
        this.data.year.push(selectedYear)
        this.setData({
            year: this.data.year,
        });
        // 刷新
        this.onPullDownRefresh();
    },

    // 选择类型时
    dataTypeChage: function (e) {
        this.setData({
            data_type_name: this.data.data_type_list[e.detail.value].name,
            data_type_value: this.data.data_type_list[e.detail.value].value,
        });
        // 刷新
        this.onPullDownRefresh();
    },

    // 获取分类
    get_cate_list: function () {
        // 发起请求
        var result = app.request_api('admin/GoodsCategory/index', {
            is_mini: 1
        }, false);
        result.then(res => {
            // console.log(res);
            if (res.list.length > 0) {
                res.list.forEach(function (item, index) {
                    // 往子项里追加全部
                    res.list[index].children.unshift({
                        id: 0,
                        category_name: '全部',
                        children: [],
                    });
                    res.list[index].children.forEach(function (item2, index2) {
                        res.list[index].children[index2].children.unshift({
                            id: 0,
                            category_name: '全部'
                        });
                    });
                });
                this.setData({
                    cate_show_data: [res.list, res.list[0].children, res.list[0].children[0].children],
                    cate_all_data: res.list
                });
            }
        });
    },

    // 分类值变化时
    CateValueChange: function (e) {
        // console.log(e);
        var cate_show_data = this.data.cate_show_data;
        var choose_index_arr = e.detail.value;
        var choose_cate_name = cate_show_data[0][choose_index_arr[0]].category_name + ' - ' + cate_show_data[1][choose_index_arr[1]].category_name + ' - ' + cate_show_data[2][choose_index_arr[2]].category_name;
        // 更新值
        this.data.choose_id_arr.push([cate_show_data[0][choose_index_arr[0]].id, cate_show_data[1][choose_index_arr[1]].id, cate_show_data[2][choose_index_arr[2]].id]);
        this.data.choose_cate_name.push(choose_cate_name);
        this.data.choose_index_arr.push(choose_index_arr);
        this.setData({
            choose_id_arr: this.data.choose_id_arr,
            choose_index_arr: this.data.choose_index_arr,
            choose_cate_name: this.data.choose_cate_name,
        });
        // 刷新
        this.onPullDownRefresh();
    },

    // 分类列变化时
    CateColumnChange: function (e) {
        var cate_all_data = this.data.cate_all_data;
        var cate_show_data = this.data.cate_show_data;
        var sel_index_arr = this.data.sel_index_arr;
        var index = e.detail.value;
        if (e.detail.column == 0) {
            // 一级分类改变时
            this.data.cate_show_data[1] = cate_all_data[index].children;
            this.data.cate_show_data[2] = cate_all_data[index].children[0].children;
            sel_index_arr = [index, 0, 0];
        }
        if (e.detail.column == 1) {
            // 二级分类改变时
            this.data.cate_show_data[2] = cate_show_data[1][index].children;
            sel_index_arr[1] = index;
            sel_index_arr[2] = 0;
        }
        if (e.detail.column == 2) {
            // 三级分类改变时
            sel_index_arr[2] = index;
        }
        // 重新渲染
        this.setData({
            cate_show_data: this.data.cate_show_data,
            sel_index_arr: sel_index_arr
        });
    },

    // 删除年份
    DeleteYear: function (e) {
        var index = e.currentTarget.dataset.index;
        // 删除对应年份
        this.data.year.splice(index, 1);
        this.setData({
            year: this.data.year,
        })
        // 刷新
        this.onPullDownRefresh();
    },

    // 删除分类
    DeleteCategory: function (e) {
        var index = e.currentTarget.dataset.index;
        this.data.choose_id_arr.splice(index, 1);
        this.data.choose_index_arr.splice(index, 1);
        this.data.choose_cate_name.splice(index, 1);
        this.setData({
            choose_id_arr: this.data.choose_id_arr,
            choose_index_arr: this.data.choose_index_arr,
            choose_cate_name: this.data.choose_cate_name,
        })
        // 刷新
        this.onPullDownRefresh();
    },

    // 删除品牌
    DeleteType: function () {
        this.setData({
            data_type_value: 0,
            data_type_name: '',
        })
        // 刷新
        this.onPullDownRefresh();
    },

    // 展示计划
    showPlan: function (e) {
        var index = e.currentTarget.dataset.index;
        if (this.data.template_list[index].is_show_plan) {
            this.data.template_list[index].is_show_plan = false;
        } else {
            this.data.template_list[index].is_show_plan = true;
        }
        this.setData({
            template_list: this.data.template_list
        })
    },

    // 展示全
    showFullText: function (e) {
        let text = e.currentTarget.dataset.text;
        if (text != null && text != '') {
            wx.showToast({
                'title': text,
                icon: 'none',
                duration: 2000,
            });
        }
    }


})
